CREATE DATABASE CONSULTNET

GO

USE CONSULTNET

GO

CREATE TABLE TIPOS_DOCUMENTOS
(
	ID_TIPO_DOCUMENTO SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1),
	TIPO_DOCUMENTO VARCHAR(30) NOT NULL
)


GO

CREATE TABLE HORARIOS
(
	ID_HORARIO SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1),
	HORARIO VARCHAR (10) NOT NULL
)



GO
CREATE TABLE OBRAS_SOCIALES
(
	ID_OBRA_SOCIAL INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	OBRA_SOCIAL  VARCHAR(30) NOT NULL,
	CUIT  VARCHAR(15) NOT NULL,
	DIRECCION VARCHAR(30) ,
	REFERENTE VARCHAR(30) ,
	TEL VARCHAR(30) ,
	MAIL VARCHAR(30)

)

GO

CREATE TABLE PACIENTES
(
	DOCUMENTO VARCHAR(10) NOT NULL PRIMARY KEY,
	ID_TIPO_DOCUMENTO SMALLINT NOT NULL FOREIGN KEY REFERENCES TIPOS_DOCUMENTOS  (ID_TIPO_DOCUMENTO) ,
	NOMBRE VARCHAR(50) NOT NULL,
	APELLIDO VARCHAR(50) NOT NULL,
	FECHA_NAC DATE NOT NULL,
	FECHA_INGRESO DATE NOT NULL,
	FECHA_EGRESO DATE,
	ID_OBRA_SOCIAL INT NOT NULL FOREIGN KEY REFERENCES OBRAS_SOCIALES  (ID_OBRA_SOCIAL),
	NUMERO_AFILIADO INT NOT NULL,
	DOMICILIO VARCHAR(30) NOT NULL,
	CP INT NOT NULL,
	MAIL VARCHAR(30),
	TELEFONO VARCHAR(12),
	TELLEFONO_ALT VARCHAR(12)
	 
)

GO

CREATE TABLE ESPECIALIDADES
(
	ID_ESPECIALIDAD SMALLINT NOT NULL PRIMARY KEY IDENTITY(1,1),
	ESPECIALIDAD  VARCHAR(30) NOT NULL
)

GO

CREATE TABLE TIPOS_EMPLEADOS
(
	ID_TIPO_EMPLEADO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	TIPO_EMPLEADO  VARCHAR(50) NOT NULL
)


GO 


CREATE TABLE EMPLEADOS
(
	ID_EMPLEADO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	ID_TIPO_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES TIPOS_EMPLEADOS  (ID_TIPO_EMPLEADO)  ,
	DOCUMENTO varchar(10) NOT NULL,
	NOMBRE VARCHAR(50) NOT NULL,
	APELLIDO VARCHAR(50) NOT NULL,
	FECHA_INGRESO DATE NOT NULL,
	FECHA_EGRESO DATE,
	URL_FOTO VARCHAR(40),
	DOMICILIO VARCHAR(30) NOT NULL,
	CP INT NOT NULL,
	MAIL VARCHAR(30),
	TELEFONO VARCHAR(12),
	TELLEFONO_ALT VARCHAR(12),
	ID_HORARIO SMALLINT FOREIGN KEY REFERENCES HORARIOS (ID_HORARIO)  
)

GO

CREATE TABLE MEDICOS
(
	LEGAJO VARCHAR(10) NOT NULL PRIMARY KEY,-- CUANTOS NUMEROS TIENE EL LEGAJO
	ID_ESPECIALIDAD  SMALLINT NOT NULL  FOREIGN KEY REFERENCES ESPECIALIDADES  (ID_ESPECIALIDAD),
	ID_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES EMPLEADOS  (ID_EMPLEADO)
)

GO

CREATE TABLE BONOS
(
	ID_BONO BIGINT NOT NULL PRIMARY KEY IDENTITY(1,1),
	NUMERO_SERIE INT NOT NULL,
	ID_OBRA_SOCIAL  INT NOT NULL FOREIGN KEY REFERENCES OBRAS_SOCIALES  (ID_OBRA_SOCIAL) ,
	FECHA_EMISION DATETIME NOT NULL,
	RECHAZADO BIT,
	ID_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES EMPLEADOS  (ID_EMPLEADO) ,
	
)

GO

CREATE TABLE ESTUDIOS
(
	ID_ESTUDIO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	ESTUDIO VARCHAR(30) NOT NULL
)

GO

create  TABLE TURNOS
(
	ID_TURNO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	DOCUMENTO_PACIENTE VARCHAR(10) FOREIGN KEY REFERENCES PACIENTES  (DOCUMENTO) ,
	FECHA_TURNO DATETIME NOT NULL,
	LEGAJO_MEDICO VARCHAR(10) NOT NULL FOREIGN KEY REFERENCES MEDICOS  (LEGAJO) ,
	ID_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES EMPLEADOS  (ID_EMPLEADO) ,
	ID_BONO BIGINT  FOREIGN KEY REFERENCES BONOS  (ID_BONO) ,
	COSTO SMALLMONEY ,
	ID_ESPECIALIDAD SMALLINT NOT NULL FOREIGN KEY REFERENCES ESPECIALIDADES (ID_ESPECIALIDAD) ,
	ID_OBRA_SOCIAL INT NOT NULL  FOREIGN KEY REFERENCES OBRAS_SOCIALES (ID_OBRA_SOCIAL) ,
	ESTADO INT NOT NULL,
	ID_HORARIO SMALLINT FOREIGN KEY REFERENCES HORARIOS (ID_HORARIO) ,
	ID_ESTUDIO INT NOT NULL FOREIGN KEY REFERENCES ESTUDIOS (ID_ESTUDIO)
	

)

GO

CREATE TABLE ESTUDIOS_X_TURNO
(
	ID_ESTUDIO INT NOT NULL FOREIGN KEY REFERENCES ESTUDIOS (ID_ESTUDIO),
	ID_TURNO INT NOT NULL FOREIGN KEY REFERENCES ESTUDIOS (ID_ESTUDIO),
	PRIMARY KEY (ID_ESTUDIO, ID_TURNO)
)

GO

CREATE TABLE PAGO_X_MEDICO
(
	LEGAJO_MEDICO  VARCHAR(10) NOT NULL FOREIGN KEY REFERENCES MEDICOS (LEGAJO) , 
	ID_TURNO INT NOT NULL,
	COSTO MONEY NOT NULL

)

GO



CREATE TABLE CAJA
(
	ID_CAJA INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	FECHA DATETIME NOT NULL,
	PAGO_MEDICOS MONEY NOT NULL,
	DINERO_ANTERIOR MONEY NOT NULL,
	DINERO_ACTUAL MONEY NOT NULL,
	ID_HORARIO SMALLINT NOT NULL FOREIGN KEY REFERENCES HORARIOS (ID_HORARIO),
	GASTOS_INTERNOS MONEY,
	ID_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES EMPLEADOS  (ID_EMPLEADO) 

)

CREATE TABLE NORMATIVAS
(
	ID_ESPECIALIDAD SMALLINT NOT NULL FOREIGN KEY REFERENCES ESPECIALIDADES (ID_ESPECIALIDAD),
	ID_OBRA_SOCIAL INT NOT NULL  FOREIGN KEY REFERENCES OBRAS_SOCIALES (ID_OBRA_SOCIAL),
	NORMATIVA VARCHAR(100) NOT NULL,
	PRIMARY KEY(ID_ESPECIALIDAD,ID_OBRA_SOCIAL )
) 

GO



CREATE TABLE TIPOS_INSUMOS
(
	ID_TIPO_INSUMO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	TIPO_INSUMO VARCHAR(30) NOT NULL
)

GO

CREATE TABLE INSUMOS
(
	ID_INSUMO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	INSUMO VARCHAR(30) NOT NULL,
	STOCK INT,

	COSTO SMALLMONEY,
	ID_TIPO_INSUMO INT NOT NULL FOREIGN KEY REFERENCES TIPOS_INSUMOS  (ID_TIPO_INSUMO) 
)

GO

CREATE TABLE PEDIDOS_INSUMOS
(
	ID_INSUMO INT NOT NULL FOREIGN KEY REFERENCES INSUMOS  (ID_INSUMO) ,
	ID_EMPLEADO INT NOT NULL FOREIGN KEY REFERENCES EMPLEADOS  (ID_EMPLEADO) ,
	FECHA DATETIME NOT NULL,
	CANTIDAD INT NOT NULL,
	PRIMARY KEY (ID_INSUMO,ID_EMPLEADO,FECHA)
)

GO



create TABLE ESTUDIOS_X_MEDICOS
(
	ID_ESTUDIO INT NOT NULL FOREIGN KEY REFERENCES ESTUDIOS (ID_ESTUDIO) ,
	LEGAJO_MEDICO  VARCHAR(10) NOT NULL FOREIGN KEY REFERENCES MEDICOS (LEGAJO) ,
	COSTO_PART MONEY NOT NULL,
	COSTO_OBRA MONEY NOT NULL,
	TURNOS_MEDIA_HORA INT NOT NULL,
	PRIMARY KEY (ID_ESTUDIO, LEGAJO_MEDICO)
)

go
CREATE table HORARIOS_MEDICOS
(
	
	dia date not null ,
	LEGAJO VARCHAR(10) NOT NULL foreign key references medicos (legajo),
	hora_desde VARCHAR(5) NOT NULL,
	hora_hasta VARCHAR(5)  NOT NULL,
	primary key (dia, legajo)

)

go

CREATE table HORARIOS_TURNOS
(
	id int primary key identity(1,1) not null,
	hora varchar(5)
)

GO

CREATE TABLE TIPOS_USUARIOS
(
	ID_TIPO_USUARIO INT NOT NULL PRIMARY KEY IDENTITY(1,1),
	TIPO_USUARIO VARCHAR(30)

)

GO

CREATE TABLE USUARIOS
(
	ID_EMPLEADO INT NOT NULL PRIMARY KEY REFERENCES EMPLEADOS (ID_EMPLEADO),
	USUARIO VARCHAR(30) NOT NULL,
	PASS VARCHAR(10) NOT NULL,
	ID_TIPO_USUARIO INT NOT NULL  REFERENCES TIPOS_USUARIOS(ID_TIPO_USUARIO) 
)



